<?
include_once('db/conexion.php');
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
  <base href="/" />
  <title>MBMP: Usuarios -> Registración</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" type="text/css" href="css/main_style.css" media="screen"/>
<body>
<?php
require_once('Pager.php');
require_once('classes/dibujado.php');
require_once 'HTML/QuickForm.php';
class signupForm extends HTML_QuickForm {
	function signupForm() {
		parent::HTML_QuickForm('signunForm');
		$this->addElement('header', null, 'Complete los campos requeridos');
		$this->addElement('text', 'usrNombre', 'Usuario');
		$this->addElement('password', 'usrPassword', 'Password');
		$this->addElement('password', 'usrPassword2', 'Repita password ');
		$this->addElement('text', 'usrMail1', 'Correo ');
		$this->addElement('text', 'usrMail2', 'Correo personal ');
		$this->addElement('text', 'usrInterno', 'Interno ');
		$this->addElement('text', 'usrTelefono', 'Telefono personal ');
		$Grupo = DB_DataObject::factory('grp');
		$grupo = new DataObjects_grp;
		$grupo->find();
		while ($grupo->fetch())
			$seleccionGrupo[$grupo->grpId] = $grupo->grpNombre;
		$select =& $this->addElement('select', 'usrGrupo', 'Grupo ', $seleccionGrupo);

		// add a  group of buttons. Groups appear on one line
		$group = array();
		// reset buttons clear the form
		$group[] =& $this->createElement('reset', 'reset', 'Limpiar');
		$group[] =& $this->createElement('submit', 'submit', 'Registrarse');
		$this->addGroup($group, 'buttons');
		
		// require a username
		$this->addRule('usrNombre', 'Debe proporcionar un nombre de usuario', 'required');
		// enforce a password between 3 and 8 chars
		$this->addRule('usrPassword', 'Su contraseña debe tener entre 3 y 15 caracteres', 'rangelength', array(3,15));
		$this->addRule('usrInterno', 'Deben ser entre 4 y 8 números', 'rangelength', array(4,8));
		$this->addRule('UsrInterno', 'Ponga sólo números', 'numeric', array(4,8));
		// compare the passwords
		$this->addRule(array('usrPassword', 'usrPassword2'), 'Sus contraseñas no coinciden', 'compare');
		$this->addRule('usrPassword', 'Debe proporcionar la contraseña', 'required');
		$this->addRule('usrPassword2', 'Debe repetir su contraseña', 'required');
		$this->addRule('usrMail1', 'No es una direccion de correo válida', 'email');
		$this->addRule('usrMail2', 'No es una direccion de correo válida', 'email');
		// register and add a rule to check if a username is free
		$this->registerRule('checkusername', 'callback', 'usernameOK', &$this);
		$this->addRule('usrNombre', 'El usuario ya existe', 'checkusername');
		$this->setRequiredNote('(*) Estos campos deben ser completados');
        }
        
        function usernameOK($username)  {
                $user = DB_DataObject::factory('usr');
		$personaExistente = new DataObjects_Usr;
		$personaExistente->usrNombre = $username;
		$personaExistente->find();
		if ( $personaExistente->count() )
			return false;
		return true;
        }
        
        function process(&$contenido)
        {
                $user = DB_DataObject::factory('usr');
		$persona = new DataObjects_Usr;
		$persona->usrNombre = htmlspecialchars($this->exportValue('usrNombre'));
		$persona->usrPassword = htmlspecialchars($this->exportValue('usrPassword')) ;
		$persona->usrMail1 = htmlspecialchars($this->exportValue('usrMail1')) ;
                $persona->usrMail2 = htmlspecialchars($this->exportValue('usrMail2')) ;
		$persona->usrInterno = htmlspecialchars($this->exportValue('usrInterno')) ;
		$persona->usrTelefono = htmlspecialchars($this->exportValue('usrTelefono')) ;
		$persona->usrGrupo = htmlspecialchars($this->exportValue('usrGrupo')) ;
	        $id = $persona->insert();
		$contenido = '<p>La registración fue exitosa.</p>' .
		'<p>Usted ya puede ingresar al sistema, con el nombre de usuario <b>'. $this->exportValue('usrNombre').'</b>.</p>';
		
		
        }
}
    

$formulario = new signupForm();
if ($formulario->validate())
    {
        $formulario->process(&$contenido);
    }
    else
    {
        $contenido = $formulario->toHtml();
    }


/*Funciones de dibujado */
dibujarEncabezado();
dibujarContenido('Usuarios','Registración de nuevo usuario.', $contenido );
dibujarMenu('Menu','',$form);
dibujarFooter('');

?>
</body>
</html>

